﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace SpaceInvaders_LeonardoCamelo
{
    static public class SceneManager //Classe gerenciadora de cenas.
    {
        //Criamos uma cena e definimos ela nula.
        static public Scene scene = null;

        //Metodo de troca de cenas.
        static public void ChangeScene(Game game, GameState nextScene)
        {
            //Limpamos os componentes de jogo.
            game.Components.Clear();

            //Dependendo da próxima cena.
            switch (nextScene)
            {
                //No caso de abertura.
                case GameState.Opening:
                    //Definimos a cena como abertura.
                    SceneManager.scene = new Opening(game);
                    game.Components.Add(SceneManager.scene);
                    break;
                //No caso de fase 1.
                case GameState.Stage1:
                    //Definimos a cena como Stage1.
                    SceneManager.scene = new Stage1(game);
                    game.Components.Add(SceneManager.scene);
                    break;
                //No caso de fase 2.
                case GameState.Stage2:
                    //Definimos a cena como Stage2.
                    SceneManager.scene = new Stage2(game);
                    game.Components.Add(SceneManager.scene);
                    break;
                //No caso de fase 3.
                case GameState.Stage3:
                    //Definimos a cena como Stage3.
                    SceneManager.scene = new Stage3(game);
                    game.Components.Add(SceneManager.scene);
                    break;
                //No caso de game over.
                case GameState.GameOver:
                    //Definimos a cena como gameover.
                    SceneManager.scene = new GameOver(game);
                    game.Components.Add(SceneManager.scene);
                    break;
                //No caso de conclusão.
                case GameState.Conclusion:
                    //Definimos a cena como conclusão.
                    SceneManager.scene = new Conclusion(game);
                    game.Components.Add(SceneManager.scene);
                    break;
            }
        }
    }
}
